home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO086B.dsk / MODEM.DOC.txt < prev    next >
Text File  |  2012-02-16  |  17KB  |  402 lines

  1. Modem.Doc file
  2.  
  3. Updated September 4, 1989 for version 3.03
  4.  
  5. Contents:
  6.  
  7. Introduction
  8. List of Included Drivers
  9. DIP settings for DataLink 1200/2400
  10. How to Install a live driver
  11. Cable/Modem Specs for GS.Driver
  12. Cable/Modem Specs  and DIP settings for SSC.Driver
  13. Cable/Modem Specs for IIc.Driver
  14. Using the IIc driver when the SSC.Driver doesn't work
  15. The Modem.Init file
  16.  
  17. Introduction
  18.  
  19. This file documents modem requirements and driver selection. Although Warp Six
  20. is written in Applesoft BASIC, the input/output drivers are written in 6502
  21. assembly language. To use Warp Six, you have to install three files in the
  22. "/W6/WARP6" directory:
  23.  
  24. 1) The Warp6.Loader program
  25. 2) The appropriate driver, renamed to be "Warp6.Driver"
  26. 3) The Modem.Init text file, containing initialization command for your modem
  27.  
  28. The Warp6.Loader and Warp6.Driver programs that come installed in the /W6/WARP6
  29. directory are modem-disabled versions -- the are copies of Local.Loader &
  30. Local.Driver found on side 2 of the distribution diskette or in the
  31. supplementary file, 'W6BBS2.BXY'.
  32.  
  33. Rather than write five or six different modem drivers, there is only one
  34. for each interface, and they are set for a default speed of 2400 baud. If you
  35. have a 1200 or 300 baud modem, you must modify this line in LOGON:
  36.  
  37. 36  POKE BA+49,3:REM 3=2400 baud, 2=1200 baud, 1=300 baud.
  38.  
  39. WARNING: Be certain you use the fastest speed your modem is capable of.
  40.  
  41.  
  42. List of Included Drivers:
  43.  
  44. GS.DRIVER - use this with an Apple IIgs (in fast mode) with any Hayes or
  45. compatible external modem. If you have a DataLink 2400, use the SSC.Driver
  46. and if you have a DataLink 1200, use the DataLink 1200 driver. Note that
  47. the SCC.Driver is designed to run on a 1.02Mhz machine; if you use it on
  48. the GS in fast mode, you'll need to modify some timeout values with POKEs.
  49. (See Warp6.Doc)
  50.  
  51. SSC.DRIVER - use this with an Apple Super Serial Card (or equivalent), with
  52. any Hayes compatible external modem. (See DIP settings below)
  53.  
  54. IIC.DRIVER - use this with the IIc (not IIc Plus) with any Hayes compatible
  55. external modem.
  56.  
  57. DATALINK.1200 - this is an UNTESTED driver for the Applied Engineering
  58. Datalink 1200 modem card. DataLink 2400 users should use the SSC.DRIVER
  59. (not the DataLink 1200 driver) with the DataLink 2400 jumpers set to B-D only.
  60. ** Do me a favour: whether this works, or doesn't work, let me know. -- JF
  61.  
  62. DIP Swith Settings for DataLink modems:
  63.  
  64. Set your DataLink 2400 (and 1200) DIP switches like so:
  65.  
  66. SW1-C Interrupts on
  67. SW2-  For 2400: Open - carrier follows remote modem. For 1200:try Open
  68. SW3-  For 1200: Open - carrier follows remote modem. For 2400:try Open
  69. SW4-C (the rest of the switches affect baud rate and parity, but Warp Six
  70. SW5-C  does not use firmware, so they MAY be irrelevant.)
  71. SW6-C
  72. SW7-C
  73. SW8-C
  74.  
  75.  
  76. How to Install a Live Driver:
  77.  
  78. To install a live modem driver, replace the file /W6/WARP6/WARP6.DRIVER
  79. with the driver that fits your modem, and replace the /W6/WARP6/WARP6.LOADER
  80. file with the WARP6.LOADER file included in W6BBS2.BXY (or on side two of
  81. the distribution diskette). The files you are replacing are actually copies
  82. of the Local.Loader and Local.Driver, which are used to experiment with the
  83. system without attaching a modem. Be sure to rename your driver as
  84. "WARP6.DRIVER", or the program will generate a "Path not Found" error.
  85.  
  86. Note: I recommend you use Warp Six with an Apple II that is an enhanced IIe
  87. or higher. However, the drivers will function on a 64k II Plus. Warp Six
  88. drivers have been tested at 300, 1200 and 2400 baud.
  89.  
  90.  
  91. GS.Driver Interface Cable Specifications and modem requirements
  92.  
  93.  
  94. In order for the GS serial port driver to work, you need a custom modem
  95. cable. The modem specs are the same as for the SSC.Driver, which follows.
  96.  
  97. For Hayes external modems and compatibles, use the following:
  98.  
  99. Mini-DIN-8 (GS)    to    DB-25 (Modem)
  100.  
  101. 1  DTR ----------------- 20 DTR
  102. 2  HSKi ---------------- 8  DCD  (This is the important line)
  103. 3  TXD ----------------- 2  TXD
  104. 4 & 8 GND&RXD+ --------- 7  SGND Signal Ground
  105. 5  RXD ----------------- 3  RXD
  106.  
  107. For the Apple Data Modem 2400:
  108.  
  109. 1  DTR ----------------- 1 DTR
  110. 2  HSKi ---------------- x DCD (not sure which pin this is; check the manual)
  111. 3  TXD ----------------- 3 TXD
  112. 4  GND ----------------- 4 GND
  113. 5  RXD- ---------------- 5 RXD-
  114. 6  TXD+ ---------------- 6 TXD+
  115. 8  RXD+ ---------------- 8 RXD+
  116.  
  117. The GS Control Panel Settings for the Modem Port should be as follows:
  118.  
  119. All defaults except, buffering-yes, dcd handshake-no, dsr/dtr handshake-no,
  120. xon/xoff handshake-yes.
  121.  
  122. To install the driver, copy it to the /W6/WARP6 directory and rename it as
  123. "WARP6.DRIVER".
  124.  
  125. Very important: use the LOCAL.LOADER program (renamed as WARP6.LOADER)
  126. this GS.Driver. The Warp6.Loader supplied in W6BBS2.BXY is for interrupt-
  127. driven drivers only. The GS.Driver uses firmware to handle interrupts.
  128.  
  129.  
  130. SSC.Driver Interface Cable Specifications and modem requirements
  131.  
  132. The SSC.Driver requires a custom serial cable. If you have a standard cable,
  133. you can make a few changes so that it conforms to the specs below:
  134.  
  135. Here is the exact configuration, using a standard DB-25 male-male cable.
  136.  
  137. SSC (DB-25)     TO     MODEM (DB-25) Hayes and compatible
  138.  
  139. 1  GND --------------- 1  GND  Frame ground (this line is OPTIONAL.)
  140. 2  TXD --------------- 2  TXD  transmit data (from SSC to modem)
  141. 3  RXD --------------- 3  RXD  receive data (from modem to SSC)
  142. 6  DSR --------------- 8  DCD  data carrier detect (from remote modem)
  143. 7  SGND -------------- 7  SGND signal ground (for all signals but pin 1)
  144. 20 DTR --------------- 20 DTR  data terminal ready (from SSC to modem)
  145.  
  146.  
  147. Make sure that NOTHING is connected to pin 8 on the SSC end. If necessary,
  148. cut the line from that end to ensure nothing is connected.
  149.  
  150. (DSR means data set ready. The SSC.Driver uses this input line to monitor
  151. remote carrier status, ie. whether a remote caller is online or not.)
  152.  
  153. The jumper block on the Super Serial Card should be set to the MODEM position.
  154. If your jumper block is not labelled, try it as it is. If it doesn't work, flip
  155. it around.
  156.  
  157. Note that which end plugs into which device is important, because of the way
  158. the DCD pin from the modem is connected to the DSR pin on the SSC.
  159.  
  160. Super Serial Card DIP switch settings:
  161.  
  162. Switch 1               Switch 2
  163.  
  164. 1  2  3  4  5  6  7    1  2  3  4  5  6  7
  165.  
  166. d  u  u  u  u  u  u    u  u  u  u  u  u  d
  167.  
  168. (d means down, u means up)
  169.  
  170. Note: the only critical switch is SW2-6 which must be on to enable interrupts.
  171. If you want to set the switches differently to support another application, you
  172. can. Warp Six does not use SSC firmware.
  173.  
  174. By the way: if you are using an unenhanced IIe, you should probaby get it
  175. enhanced. The older ROMS can lose characters at high baud rates, and this will
  176. be quite annoying to your users.
  177.  
  178. The system was designed and tested on genuine Hayes products and I have nothing
  179. but praise for them. I have, however, had horrendous experiences with so-called
  180. "100% Hayes compatible" modems. The Applied Engineering DataLink 2400 is a
  181. notable exception.
  182.  
  183. If you have a Hayes compatible modem, it must meet the following requirements
  184. to work with the SSC.Driver and/or GS.Driver:
  185.  
  186. The modem must support disabling auto-answer with the ATS0=0 command,
  187. and must support manual answer with the ATA command.
  188.  
  189. (Note: the Apple Modem 300/1200 can't do this.)
  190.  
  191. 1) It must hangup and return to command state when DTR is dropped. (This
  192. rules out the Apple Personal Modem, by the way). DTR is set via DIP
  193. switches or by modem commands, like AT&D2.
  194.  
  195. 2) It must supply a carrier detect signal that follows that of the remote
  196. modem. (If DCD is forced TRUE always, the system has no way of knowing
  197. when someone has hung up.)
  198.  
  199. These are absolute requirements. Set up your modem beforehand to meet
  200. these requirements, using the following as a guide:
  201.  
  202.    Hayes & Exact compatible     Hayes 2400                 Effect
  203.  
  204.    Set switch 1 UP              Issue AT&D2&W              Support DTR
  205.    Set switch 6 UP              Issue AT&C1&W              Follow remote DCD
  206.    Set switch 5 DOWN            Issue ATS0=0&W             Disable auto-answer
  207.  
  208. The BBS will set the modem up to provide digit result codes, no echo of
  209. result codes, and extended result codes with the ATX1 command (unless you
  210. are using the 300 baud driver, which doesn't include the X1 command.)
  211.  
  212. You can probably let the system do these without pre-configuration. (Again, I
  213. have tested everything on genuine Hayes modems.)
  214.  
  215. Note to DataLink owners: The Hayes.2400 driver will work with the DataLink 2400
  216. modem, provided your dip and jumper settings are correct. (See above). The 1200
  217. baud DataLink will need the dip settings shown, but doesn't have the jumpers to
  218. simulate a custom cable. I have included a driver to overcome this difficulty,
  219. but it has NOT BEEN TESTED. Please contact me if it fails to function.
  220. (My address/electronic address is in the Read.Me.First file)
  221.  
  222.  
  223. IIc Cable Specifications and Modem Requirements
  224.  
  225. The IIc modem driver uses a different method to handle incoming calls because
  226. of the way the IIc modem port was designed. Warp Six with a Super Serial Card
  227. uses the DSR general purpose input line to monitor the status of remote
  228. carrier detect. On the IIc, this line is used for keyboard buffering, so I
  229. had to resort to using the DCD input. The DCD line is held low when there is no
  230. remote carrier. On the 6551, this disables the receiver, so Warp Six cannot
  231. see any result codes from the modem, and therefore cannot even be sure any
  232. modem is connected, nor what baud rate an incoming call is at. To overcome
  233. these problems, I set the modem to auto-answer, and constantly monitor the
  234. carrier detect line for a connection. When a connection occurs, the IIc driver
  235. displays "Incoming call..." and tries to determine the baud rate, by looking
  236. for a carriage return from the remote caller. The driver waits 1/4 second
  237. at each baud rate, cycling through each baud rate until either a carriage
  238. return is found, or the connection is lost.
  239.  
  240. In testing with a IIc and Hayes Smartmodem 2400, we found it took one CR to
  241. establish the baud rate at 2400, 2 at 1200 and 3 at 300.
  242.  
  243. The IIc driver for Warp Six requires a custom serial cable. 
  244.  
  245. Here is the exact configuration:
  246.  
  247. IIC DIN-5 MALE   TO   MODEM DB-25 MALE
  248.  
  249. 1 RTS --------------- 20 DTR data terminal ready (used to hangup modem)
  250. 2 TXD --------------- 2  TXD transmit data (from IIc to modem)
  251. 3 GND --------------- 7  GND signal ground
  252. 4 RXD --------------- 3  RXD receive date
  253. 5 DCD --------------- 8  DCD data carrier detect (from remote modem)
  254.  
  255. IIC DIN-5 MALE   TO   MODEM MINI-DIN-8 MALE (Apple Data Modem 2400)
  256.  
  257. 1 RTS --------------- 1 HSKo Handshake Out
  258. 2 TXD --------------- 3 TXD- Transmit Data negative
  259. 3 GND --------------- 4 & 8 GND & RXD+ Signal Ground and Receive Data Positive
  260. 4 RXD --------------- 5 RXD- Receive Data negative
  261. 5 DCD --------------- 7 DCD  Data Carrier Detect ****
  262.        **** Check your modem pinouts to ensure this line is DCD, not DSR.
  263.  
  264. Note: The Apple Personal Modem will work with the above cable, but it can only
  265. provide carrier detect that is TRUE at all times, so the software will think
  266. someone is online at all times. As well, the APM does not hangup when DTR is
  267. dropped. This is unacceptable for running any kind of BBS.
  268.  
  269. IIC DIN-5 MALE   TO   MODEM DB-9 (Apple Modem 300/1200)
  270.  
  271. 1 RTS --------------- 6 DTR
  272. 2 TXD --------------- 9 TXD
  273. 3 GND --------------- 3 GND
  274. 4 RXD --------------- 5 RXD
  275. 5 DCD --------------- 7 DCD
  276.  
  277. Note: The Apple Modem 300/1200 will work if you set your DIP switches like so:
  278.       1 - OFF   2 - OFF   3 - OFF
  279.  
  280. These cables will work with most terminal programs as long as you remember that
  281. you can't receive data until a remote carrier is established (or until your
  282. modem is set up to force carrier detect TRUE at all times). For Warp Six,
  283. your modem must be configured to provide an accurate carrier detect signal.
  284.  
  285.  
  286. Cable for Modems that Don't work with SSC.Driver:
  287.  
  288. For Apple Modem 300/1200 users: because this modem was not designed 100% Hayes
  289. compatible, you have to use the IIc driver with the following cable:
  290.  
  291. (Note this will only work with a IIc or Super Serial Card.)
  292.  
  293. SSC (DB-25)     TO     MODEM (DB-9) Apple Modem 300/1200
  294.  
  295. 1  GND --------------- 8  GND  Chassis ground (this line is OPTIONAL)
  296. 2  TXD --------------- 9  TXD
  297. 3  RXD --------------- 5  RXD
  298. 7  SGND -------------- 3  SGND
  299. 8  DCD --------------- 7  DCD
  300. 20 DTR --------------- 6  DTR
  301.  
  302. If you have a modem with a DB-25 connector that doesn't support manual answer
  303. with the ATA command, or simply doesn't work with the SSC.Driver, try
  304. the IIc.Driver with the following cable:
  305.  
  306. 1  GND --------------- 1  GND Frame Ground. This line is OPTIONAL.
  307. 2  TXD --------------- 2  TXD
  308. 3  RXD --------------- 3  RXD
  309. 7  SGND -------------- 7  SGND
  310. 8  DCD --------------- 8  DCD
  311. 20 DTR --------------- 20 DTR
  312.  
  313. Modem Requirements and Setup for the IIc.Driver
  314.  
  315. Your modem must meet three requirements:
  316.  
  317. 1) It must hangup and return to command state when DTR is dropped. DTR is set
  318. via DIP switches or by modem commands, like AT&D2&W.
  319.  
  320. 2) It must supply a carrier detect signal that follows that of the remote
  321. modem. (If DCD is forced TRUE always, the driver will believe a caller is
  322. always online.)
  323.  
  324. 3) It must support auto-answer, either by DIP switch or the ATS0=1 command.
  325.  
  326. These are absolute requirements. Set up your modem beforehand to meet
  327. these requirements, using the following as a guide:
  328.  
  329.    Hayes & Exact compatible     Hayes 2400 or compat.      Effect
  330.  
  331.    Set switch 1 UP              Issue AT&D2&W              Support DTR
  332.    Set switch 6 UP              Issue AT&C1&W              Follow remote DCD
  333.    Set switch 5 UP              Issue ATS0=1&W             Enable auto-answer
  334.  
  335. The Modem.Init file should be set up as follows:
  336.  
  337. ATS0=1S7=25
  338.  
  339. Just this one line terminated by a carriage return is all that is required. You
  340. can add an M0 command to shut off the modem speaker (if it has one). Just add
  341. "M0" to the end of the command. Note: the IIc.Driver will NOT work with the
  342. default Modem.Init file. I have included a file called IIc.Init for your
  343. convenience. It contains the above line. Just delete the Modem.Init file from
  344. the /W6/WARP6 directory, copy the IIc.Init file there, and rename it to be
  345. MODEM.INIT.
  346.  
  347. If you have any problems, questions or suggestions regarding the IIc driver,
  348. please let me know. (See ReadMe First file for my electronic ID's).
  349.  
  350.  
  351. The Modem.Init file
  352.  
  353. This file contains the initialization commands for your modem. It comes set up
  354. for the SCC.Driver and/or GS.Driver and Hayes Smartmodem 2400:
  355.  
  356. ATX1E0V0M0S0=0S7=20
  357. AT&C1&D2
  358.  
  359. The second line should be deleted if your modem does not support ampersand (&)
  360. commands. The first line should be customized if any of its commands are not
  361. implemented (or implemented differently) on your modem.
  362.  
  363. What follows is a description of each command, what it does and why:
  364.  
  365. AT - prefaces each command. This is the "ATtention" code.
  366.  
  367. X1 - sets modem to provide extended result codes to indicate the baud rate
  368. of the connection.
  369.  
  370. E0 - tells modem not to echo command characters
  371.  
  372. V0 - use non-verbal (numeric) result codes. The driver can't recognize verbal
  373.      result codes
  374.  
  375. M0 - shut off the speaker. If your BBS is in your living room or bedroom, you
  376.      don't want to hear the squeal of every connection. If you modem does not
  377.      have a speaker, remove this command. If you WANT to hear each connection,
  378.      change this command to M1.
  379.  
  380. S0=0 This command sets register 0 to 0, which tells the modem never to answer
  381.      the phone unless manually commanded by the software to do so with the ATA
  382.      command, which is issued by the SSC.Driver after a '2' (Ring) result.
  383.      This prevents the modem from answering when the software isn't ready.
  384.  
  385. S7=20 This command sets register 7 to 20, which is the number of seconds to
  386.       wait for a carrier. 20 seconds is plenty of time for most modems to
  387.       make the connection; longer wastes time between false calls. You can
  388.       set this to 15, 25 or 30 if you prefer. Feel free to experiment.
  389.  
  390. &C1   Tells the Hayes 2400 or equivalent to provide a carrier detect signal
  391.       based on that of the remote modem. This allows the driver to react when
  392.       a user hangs up on the system.
  393.  
  394. &D2   Tells the Hayes 2400 or equivalent to hangup and go to command state
  395.       when the DTR (Data Terminal Ready) line is negated. This is how the
  396.       SCC.Driver hangs up the modem. Warp Six does not support modems that
  397.       won't hangup when DTR is dropped.
  398.  
  399. Note: the carriage return at the end of each of the lines is important. After
  400. the driver sends a line, it pauses for about a second to allow the command
  401. to take effect. Then the next line, if any is sent.
  402.